package main

import (
	"yundian/internel/app/logic"
	. "yundian/internel/pkg/dbs"
	. "yundian/internel/pkg/dingo"
	"yundian/internel/pkg/dingo/system"
)

func main() {
	// dingo.InitViper("./configs/zhongman.yaml")
	// TaskSystem := system.New("./configs/adm.yaml").
	// TaskSystem := system.New("./configs/zhongman.yaml").
	TaskSystem := system.New("./configs/zmtest.yaml").
		Ready(
			NewZapComponent(),   // logger 日志管理
			NewMysqlComponent(), // mysql 连接
			NewRedisComponent(), // redis 连接
			NewTransComponent(), // validator 翻译器
		)

	//// 每30分钟监控使用超时订单
	//TaskSystem.Task("10 27 11 * * *", func() {
	//	orderList := make([]*orders.OrderModel, 0)
	//
	//	// AND FROM_UNIXTIME(end_at)>'2021-07-10'
	//	sql := `SELECT * FROM orders WHERE trade_no NOT IN (SELECT trade_no FROM dividends_log) AND state=5 AND
	//	settlement_money>1 AND user_id>0 AND place_id>0 LIMIT 800`
	//
	//	if db := global.Orm.Debug().Raw(sql).Find(&orderList); db.Error != nil {
	//		logs.Error(db.Error)
	//	}
	//
	//	go func() {
	//		for _, item := range orderList {
	//			fmt.Println(item)
	//			devInfo := dao.NewDeviceDao().FetchDeviceInfoWithType(item.DeviceSn).Unwrap().(*devices.DeviceType)
	//			//logic.NewOrderLogic().CalOrderDividends(item, devInfo, item.SettlementMoney, int64(item.EndAt))
	//			dingo.Task(logic.NewOrderLogic().CalOrderDividends, func() {}, item, devInfo, item.SettlementMoney, int64(item.EndAt)) // 押金支付的分红
	//		}
	//	}()
	//
	//	//logic.NewTaskLogic().AutoCompleteMemberOrder()
	//})

	// 每30分钟监控使用超时订单
	//TaskSystem.Task("20,50 * * * * *", func() {
	//	logic.NewTaskLogic().OrderRelevanceSyncData()
	//})

	// 客房超市自动取消订单 每10秒同步一次
	//TaskSystem.Task("5,15,25,35,45,55 * * * * *", func() {
	//	logic.NewTaskLogic().GoodsAutoCancelOrder()
	//})
	// 订单关联表自动同步 每10秒同步一次
	TaskSystem.Task("0,10,20,30,40,50 * * * * *", func() {
		logic.NewTaskLogic().OrderRelevanceSyncData()
	})
	TaskSystem.Go()
}
